package com.lee.rabbitmq.service.impl;

import com.lee.rabbitmq.service.SendService;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * springboot集成rabbitmq,发送类
 *
 * @author Lee
 * @createDate 2021/12/17 10:08
 */
@Service
public class SendServiceImpl implements SendService {
    /** 注入Amqp的模板类，利用这个对象来发送和接收消息 **/
    @Resource
    private AmqpTemplate amqpTemplate;
    @Override
    public void send(String message) {

        /**
         * 发送消息
         * 参数1  为交换机名
         * 参数2  为Routingkey
         * 参数3  为我们的具体发送的消息数据
         */
        amqpTemplate.convertAndSend("bootDirectExchange","bootDirectRoutingkey",message);
    }

    /**
     * 使用fanout发送消息
     * @param message 需发送的消息
     * @author Lee
     * @createDate 2021/12/17 15:30
     */
    @Override
    public void sendFanoutMessage(String message) {
        amqpTemplate.convertAndSend("fanoutExchange","",message);
    }

    /**
     * 使用topic发送消息
     * @param message 需发送的消息
     * @author Lee
     * @createDate 2021/12/17 15:30
     */
    @Override
    public void sendTopicMessage(String message) {
        amqpTemplate.convertAndSend("topicExchange","aa.bb.cc",message);
    }
}
